library(tidyverse)
library(spData)
library(sf)
## New Packages
library(mapview) # new package that makes easy leaflet maps
library(foreach)
library(doParallel)
registerDoParallel(4)
getDoParWorkers() # check registered cores
To use the tidycensus package, you will need to load the package and set your Census API key. A key can be obtained from http://api.census.gov/data/key_signup.html. You will only need to do that once (unless you delete your .Renviron file or move to a different computer).
# go to http://api.census.gov/data/key_signup.html and get a key, then run the line below with your key. Don't push your key to github!
library(tidycensus)
census_api_key("YOUR API KEY GOES HERE")
Write an Rmd script that:
get_dicennial() function of the
tidycensus package. You can use the following code:library(tidycensus)
racevars <- c(White = "P005003",
Black = "P005004",
Asian = "P005006",
Hispanic = "P004003")
options(tigris_use_cache = TRUE)
erie <- get_decennial(geography = "block", variables = racevars,
state = "NY", county = "Erie County", geometry = TRUE,
summary_var = "P001001", cache_table=T)
##
Downloading: 17 kB
Downloading: 17 kB
Downloading: 20 kB
Downloading: 20 kB
Downloading: 22 kB
Downloading: 22 kB
Downloading: 66 kB
Downloading: 66 kB
Downloading: 66 kB
Downloading: 66 kB
Downloading: 72 kB
Downloading: 72 kB
Downloading: 84 kB
Downloading: 84 kB
Downloading: 84 kB
Downloading: 84 kB
Downloading: 89 kB
Downloading: 89 kB
Downloading: 110 kB
Downloading: 110 kB
Downloading: 110 kB
Downloading: 110 kB
Downloading: 110 kB
Downloading: 110 kB
Downloading: 120 kB
Downloading: 120 kB
Downloading: 120 kB
Downloading: 120 kB
Downloading: 120 kB
Downloading: 120 kB
Downloading: 120 kB
Downloading: 120 kB
Downloading: 130 kB
Downloading: 130 kB
Downloading: 130 kB
Downloading: 130 kB
Downloading: 130 kB
Downloading: 130 kB
Downloading: 140 kB
Downloading: 140 kB
Downloading: 150 kB
Downloading: 150 kB
Downloading: 150 kB
Downloading: 150 kB
Downloading: 150 kB
Downloading: 150 kB
Downloading: 160 kB
Downloading: 160 kB
Downloading: 170 kB
Downloading: 170 kB
Downloading: 170 kB
Downloading: 170 kB
Downloading: 170 kB
Downloading: 170 kB
Downloading: 170 kB
Downloading: 170 kB
Downloading: 170 kB
Downloading: 170 kB
Downloading: 180 kB
Downloading: 180 kB
Downloading: 190 kB
Downloading: 190 kB
Downloading: 200 kB
Downloading: 200 kB
Downloading: 200 kB
Downloading: 200 kB
Downloading: 210 kB
Downloading: 210 kB
Downloading: 230 kB
Downloading: 230 kB
Downloading: 240 kB
Downloading: 240 kB
Downloading: 240 kB
Downloading: 240 kB
Downloading: 250 kB
Downloading: 250 kB
Downloading: 270 kB
Downloading: 270 kB
Downloading: 270 kB
Downloading: 270 kB
Downloading: 290 kB
Downloading: 290 kB
Downloading: 290 kB
Downloading: 290 kB
Downloading: 290 kB
Downloading: 290 kB
Downloading: 310 kB
Downloading: 310 kB
Downloading: 350 kB
Downloading: 350 kB
Downloading: 380 kB
Downloading: 380 kB
Downloading: 420 kB
Downloading: 420 kB
Downloading: 450 kB
Downloading: 450 kB
Downloading: 470 kB
Downloading: 470 kB
Downloading: 480 kB
Downloading: 480 kB
Downloading: 500 kB
Downloading: 500 kB
Downloading: 520 kB
Downloading: 520 kB
Downloading: 520 kB
Downloading: 520 kB
Downloading: 550 kB
Downloading: 550 kB
Downloading: 570 kB
Downloading: 570 kB
Downloading: 960 kB
Downloading: 960 kB
Downloading: 990 kB
Downloading: 990 kB
Downloading: 990 kB
Downloading: 990 kB
Downloading: 1 MB
Downloading: 1 MB
Downloading: 1 MB
Downloading: 1 MB
Downloading: 1.1 MB
Downloading: 1.1 MB
Downloading: 1.1 MB
Downloading: 1.1 MB
Downloading: 1.1 MB
Downloading: 1.1 MB
Downloading: 1.1 MB
Downloading: 1.1 MB
Downloading: 1.1 MB
Downloading: 1.1 MB
Downloading: 1.2 MB
Downloading: 1.2 MB
Downloading: 1.2 MB
Downloading: 1.2 MB
Downloading: 1.2 MB
Downloading: 1.2 MB
Downloading: 1.2 MB
Downloading: 1.2 MB
Downloading: 1.3 MB
Downloading: 1.3 MB
Downloading: 1.3 MB
Downloading: 1.3 MB
Downloading: 1.3 MB
Downloading: 1.3 MB
Downloading: 1.3 MB
Downloading: 1.3 MB
Downloading: 1.3 MB
Downloading: 1.3 MB
Downloading: 1.3 MB
Downloading: 1.3 MB
Downloading: 1.3 MB
Downloading: 1.3 MB
Downloading: 1.4 MB
Downloading: 1.4 MB
Downloading: 1.4 MB
Downloading: 1.4 MB
Downloading: 1.4 MB
Downloading: 1.4 MB
Downloading: 1.4 MB
Downloading: 1.4 MB
Downloading: 1.4 MB
Downloading: 1.4 MB
Downloading: 1.5 MB
Downloading: 1.5 MB
Downloading: 1.6 MB
Downloading: 1.6 MB
Downloading: 1.6 MB
Downloading: 1.6 MB
Downloading: 1.7 MB
Downloading: 1.7 MB
Downloading: 1.7 MB
Downloading: 1.7 MB
Downloading: 1.7 MB
Downloading: 1.7 MB
Downloading: 1.7 MB
Downloading: 1.7 MB
Downloading: 1.7 MB
Downloading: 1.7 MB
Downloading: 1.8 MB
Downloading: 1.8 MB
Downloading: 1.8 MB
Downloading: 1.8 MB
Downloading: 1.9 MB
Downloading: 1.9 MB
Downloading: 1.9 MB
Downloading: 1.9 MB
Downloading: 1.9 MB
Downloading: 1.9 MB
Downloading: 2 MB
Downloading: 2 MB
Downloading: 2 MB
Downloading: 2 MB
Downloading: 2 MB
Downloading: 2 MB
Downloading: 2 MB
Downloading: 2 MB
Downloading: 2.2 MB
Downloading: 2.2 MB
Downloading: 2.3 MB
Downloading: 2.3 MB
Downloading: 2.3 MB
Downloading: 2.3 MB
Downloading: 2.3 MB
Downloading: 2.3 MB
Downloading: 2.3 MB
Downloading: 2.3 MB
Downloading: 2.4 MB
Downloading: 2.4 MB
Downloading: 2.4 MB
Downloading: 2.4 MB
Downloading: 2.4 MB
Downloading: 2.4 MB
Downloading: 2.4 MB
Downloading: 2.4 MB
Downloading: 2.5 MB
Downloading: 2.5 MB
Downloading: 2.5 MB
Downloading: 2.5 MB
Downloading: 2.5 MB
Downloading: 2.5 MB
Downloading: 2.6 MB
Downloading: 2.6 MB
Downloading: 2.6 MB
Downloading: 2.6 MB
Downloading: 2.6 MB
Downloading: 2.6 MB
Downloading: 2.6 MB
Downloading: 2.6 MB
Downloading: 2.6 MB
Downloading: 2.6 MB
Downloading: 2.7 MB
Downloading: 2.7 MB
Downloading: 2.7 MB
Downloading: 2.7 MB
Downloading: 2.7 MB
Downloading: 2.7 MB
Downloading: 2.7 MB
Downloading: 2.7 MB
Downloading: 2.8 MB
Downloading: 2.8 MB
Downloading: 2.8 MB
Downloading: 2.8 MB
Downloading: 2.8 MB
Downloading: 2.8 MB
Downloading: 2.8 MB
Downloading: 2.8 MB
Downloading: 2.8 MB
Downloading: 2.8 MB
Downloading: 2.8 MB
Downloading: 2.8 MB
Downloading: 2.9 MB
Downloading: 2.9 MB
Downloading: 2.9 MB
Downloading: 2.9 MB
Downloading: 2.9 MB
Downloading: 2.9 MB
Downloading: 3 MB
Downloading: 3 MB
Downloading: 3 MB
Downloading: 3 MB
Downloading: 3 MB
Downloading: 3 MB
Downloading: 3.1 MB
Downloading: 3.1 MB
Downloading: 3.1 MB
Downloading: 3.1 MB
Downloading: 3.1 MB
Downloading: 3.1 MB
Downloading: 3.1 MB
Downloading: 3.1 MB
Downloading: 3.2 MB
Downloading: 3.2 MB
Downloading: 3.2 MB
Downloading: 3.2 MB
Downloading: 3.3 MB
Downloading: 3.3 MB
Downloading: 3.3 MB
Downloading: 3.3 MB
Downloading: 3.3 MB
Downloading: 3.3 MB
Downloading: 3.4 MB
Downloading: 3.4 MB
Downloading: 3.4 MB
Downloading: 3.4 MB
Downloading: 3.4 MB
Downloading: 3.4 MB
Downloading: 3.4 MB
Downloading: 3.4 MB
Downloading: 3.4 MB
Downloading: 3.4 MB
Downloading: 3.4 MB
Downloading: 3.4 MB
Downloading: 3.4 MB
Downloading: 3.4 MB
c(xmin=-78.9,xmax=-78.85,ymin=42.888,ymax=42.92) to reduce
the computational burdern. Feel free to enlarge this area if your
computer is fast (or you are patient).variable column of the
erie dataset and rbinds the results
(e.g. .combine=rbind) into a single sf object.
You may want to convert the variable column into a factor and use
levels() or use unique().
st_sample() to generate random points for each
person that resided within each polygon. If you use a pipe
(%>%), you will have to set size=.$value.
The . indicates that the column comes from the dataset that
was passed to the function. See here for
details on how to use the . in a pipe.st_sample() to spatial features
with st_as_sf()mutate to add a column named variable that
is set to the current racial group (from the foreach loop)mapview() function in the mapview
package to make a leaflet map of the dataset and set the
zcol to the racial identity of each point. You can adjust
any of the visualization parameters (such as cex for size).
Read more about mapview
here. It’s a new and really easy way to make leaflet maps from many
types of spatial data.buffalo <- erie %>%
st_crop(c(xmin=-78.9,xmax=-78.85,ymin=42.888,ymax=42.92))
buffalo_dots=
foreach(r=unique(buffalo$variable),.combine=rbind)%dopar%{
filter(buffalo,variable==r) %>% #do one variable at a time
st_sample(size=.$value) %>% #generate a point for each person randomly
st_as_sf() %>% #convert to a full sf object
mutate(variable=r) #add the variable onto the points
}
Your final result should look something like this: